home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Developer CD v2.1
/
Amiga Developer CD v2.1.iso
/
CDTV
/
cdtvtools-11
/
debug
/
watchdog
/
enforcer.doc
< prev
next >
Wrap
Text File
|
1991-06-13
|
2KB
|
55 lines
Enclosed is a majik tool for detecting invisible bugs in programs; _The
Enforcer_ uses the MMU to build a shroud of protection over anything that
is not legal memory. Any "empty holes" in the address space are marked as
illegal by _Enforcer_. Reads of the system ROMs are allowed, but not
writes. With the exception of longword reads of location 4, the lowest 1K
of memory is completely off-limits.
When an illegal access is detected, the power LED will flash and a detailed
message will be sent out the serial port (at the default speed). Illegal
writes are aborted, illegal reads return NULL data. For example:
Program Counter (approximate)= 28EB3E Fault address =C0EDBABE
User stack pointer = 2E39EC DOS process address = 23C810
Data: DDDD0000 DDDD1100 DDDD2200 DDDD3300 DDDD4400 DDDD5500 DDDD6600 DDDD7700
Addr: AAAA0000 AAAA1100 AAAA2200 AAAA3300 AAAA4400 AAAA5500 AAAA6600 000FFFA0
Data output buffer =$DDDD0000 ( )
Status register =$8 Special status word =$709 (WRITE-LONG)
Process/CLI = AmigaShell ,"lawbreaker"
CLI command "lawbreaker" has written the value $DDDD0000 to location
$C0EDBABE. The write was aborted. With the information given, it is
usually quite easy to figure out what went wrong.
Remote keystrokes:
^S - pause
^Q - resume
^X - disable _Enforcer_ reporting until next ^Q.
Notes:
If you don't have an external terminal, just use a modem & a terminal
program. Most modems will echo back characters at any baud rate. Else,
just set the baud rate to match the modem.
Illegal hits from CLI commands named "metascope" or "wack" are ignored.
The Alert() system call writes to locations in the $180-$1C0 area.
_The Enforcer_ works on any V1.2,V1.3 or V2.0 system, provided the MMU
is available.